<?php

/**
 *
 * @author TranHuu-Entwicklung
 */


function str_startsWith($haystack, $needle, $case=true) {
  if ($case) {
    return (strcmp(substr($haystack, 0, strlen($needle)), $needle) === 0);
  }
  return (strcasecmp(substr($haystack, 0, strlen($needle)), $needle) === 0);
}

function str_endsWith($haystack, $needle, $case=true) {
  if ($case) {
    return (strcmp(substr($haystack, strlen($haystack) - strlen($needle)), $needle) === 0);
  }
  return (strcasecmp(substr($haystack, strlen($haystack) - strlen($needle)), $needle) === 0);
}

function randstr($length){
  return substr(str_shuffle("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"), 0, $length);
}

function stripUnicode($str) {
  if (!$str)
    return '';
  $unicode = array(
      'a' => 'á|à|?|ã|?|a|?|?|?|?|?|â|?|?|?|?|?',
      'd' => 'd',
      'e' => 'é|è|?|?|?|ê|?|?|?|?|?',
      'i' => 'í|ì|?|i|?',
      'o' => 'ó|ò|?|õ|?|ô|?|?|?|?|?|o|?|?|?|?|?',
      'u' => 'ú|ù|?|u|?|u|?|?|?|?|?',
      'y' => 'ý|?|?|?|?',
      'A' => 'Á|À|?|Ã|?|A|?|?|?|?|?|Â|?|?|?|?|?',
      'D' => 'Ð',
      'E' => 'É|È|?|?|?|Ê|?|?|?|?|?',
      'I' => 'Í|Ì|?|I|?',
      'O' => 'Ó|Ò|?|Õ|?|Ô|?|?|?|?|?|O|?|?|?|?|?',
      'U' => 'Ú|Ù|?|U|?|U|?|?|?|?|?',
      'Y' => 'Ý|?|?|?|?',
  );
  foreach ($unicode as $nonUnicode => $uni)
    $str = preg_replace("/($uni)/i", $nonUnicode, $str);
  return $str;
}

function str_nice_name($str) {
  $marTViet = array("à", "á", "ạ", "ả", "ã", "â", "ầ", "ấ", "ậ", "ẩ", "ẫ", "ă",
      "ằ", "ắ", "ặ", "ẳ", "ẵ", "è", "é", "ẹ", "ẻ", "ẽ", "ê", "ề"
      , "ế", "ệ", "ể", "ễ",
      "ì", "í", "ị", "ỉ", "ĩ",
      "ò", "ó", "ọ", "ỏ", "õ", "ô", "ồ", "ố", "ộ", "ổ", "ỗ", "ơ"
      , "ờ", "ớ", "ợ", "ở", "ỡ",
      "ù", "ú", "ụ", "ủ", "ũ", "ư", "ừ", "ứ", "ự", "ử", "ữ",
      "ỳ", "ý", "ỵ", "ỷ", "ỹ",
      "đ",
      "À", "Á", "Ạ", "Ả", "Ã", "Â", "Ầ", "Ấ", "Ậ", "Ẩ", "Ẫ", "Ă"
      , "Ằ", "Ắ", "Ặ", "Ẳ", "Ẵ",
      "È", "É", "Ẹ", "Ẻ", "Ẽ", "Ê", "Ề", "Ế", "Ệ", "Ể", "Ễ",
      "Ì", "Í", "Ị", "Ỉ", "Ĩ",
      "Ò", "Ó", "Ọ", "Ỏ", "Õ", "Ô", "Ồ", "Ố", "Ộ", "Ổ", "Ỗ", "Ơ"
      , "Ờ", "Ớ", "Ợ", "Ở", "Ỡ",
      "Ù", "Ú", "Ụ", "Ủ", "Ũ", "Ư", "Ừ", "Ứ", "Ự", "Ử", "Ữ",
      "Ỳ", "Ý", "Ỵ", "Ỷ", "Ỹ",
      "Đ");

  $marKoDau = array("a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a"
      , "a", "a", "a", "a", "a", "a",
      "e", "e", "e", "e", "e", "e", "e", "e", "e", "e", "e",
      "i", "i", "i", "i", "i",
      "o", "o", "o", "o", "o", "o", "o", "o", "o", "o", "o", "o"
      , "o", "o", "o", "o", "o",
      "u", "u", "u", "u", "u", "u", "u", "u", "u", "u", "u",
      "y", "y", "y", "y", "y",
      "d",
      "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A"
      , "A", "A", "A", "A", "A",
      "E", "E", "E", "E", "E", "E", "E", "E", "E", "E", "E",
      "I", "I", "I", "I", "I",
      "O", "O", "O", "O", "O", "O", "O", "O", "O", "O", "O", "O"
      , "O", "O", "O", "O", "O",
      "U", "U", "U", "U", "U", "U", "U", "U", "U", "U", "U",
      "Y", "Y", "Y", "Y", "Y",
      "D");
  $str = str_replace($marTViet, $marKoDau, $str);
  $str = str_replace('&', 'and', $str);
  $str = str_replace('$', 'USD', $str);
  $str = str_replace('+', 'and', $str);
  return str_replace(' ', '_', $str);
}